Saltar al contenido principal

UT4 – Estructuras de datos Complejas

Hasta ahora se han trabajado los tipos de datos simples de Python, como números, cadenas o valores lógicos. Sin embargo, en la mayoría de programas es necesario almacenar y manipular varios valores a la vez, ya sea una lista de nombres, las notas de un grupo de alumnos o los productos de una tienda. Para ello, Python ofrece una serie de tipos de datos complejos o estructuras de colección, que permiten agrupar varios elementos en una sola variable.

Estos tipos de datos no solo almacenan información, sino que también proporcionan métodos y operaciones específicas para acceder, recorrer o modificar sus contenidos. Gracias a ello, se convierten en herramientas fundamentales para organizar datos de forma eficiente y estructurada.

En esta unidad se estudiarán las cuatro colecciones principales de Python:

  • Listas, que permiten guardar varios elementos ordenados y modificables.
  • Tuplas, similares a las listas, pero inmutables.
  • Conjuntos, que almacenan elementos únicos sin orden.
  • Diccionarios, que asocian claves con valores, como si fueran mini bases de datos.

Cada una de estas estructuras tiene propiedades y usos específicos que las hacen más adecuadas para distintas situaciones. A lo largo del tema se aprenderá cómo crearlas, modificarlas y utilizarlas en programas reales, comprendiendo además sus diferencias y ventajas.

📊 Características de cada estructura​

TipoOrdenadoMutablePermite duplicadosEstructura clave–valor
List✅✅✅❌
Tuple✅❌✅❌
Set❌✅❌❌
Dict✅✅❌ (en claves)✅
tip

Usa listas cuando necesites modificar elementos, tuplas para datos fijos, conjuntos para eliminar duplicados y diccionarios para datos relacionados.

📊 Cuándo usar cada tipo​

NecesidadTipo recomendadoMotivo
Lista de datos que cambiarán con el tiempo.listPermite añadir, borrar o modificar elementos.
Colección de datos fijos, por ejemplo coordenadas o constantes.tupleProtege la información (inmutable).
Agrupar valores únicos y realizar operaciones de conjuntos.setEvita duplicados y facilita uniones o intersecciones.
Asociar valores a una clave identificadora.dictPermite acceso rápido a los datos por clave.

📊 Tabla resumen de la unidad​

CaracterísticaLista (list)Tupla (tuple)Conjunto (set)Diccionario (dict)
EstructuraColección ordenada de elementos.Colección ordenada inmutable.Colección no ordenada sin duplicados.Colección de pares clave–valor.
Sintaxis[1, 2, 3](1, 2, 3){1, 2, 3} o set(){"clave": "valor"}
Orden✅ Sí (mantiene orden de inserción)✅ Sí❌ No (sin orden definido)✅ Sí (desde Python 3.7)
Mutabilidad✅ Mutable (puede modificarse)❌ Inmutable✅ Mutable✅ Mutable
Duplicados✅ Permitidos✅ Permitidos❌ No permitidos❌ No en claves (sí en valores)
Indexación✅ Por índice numérico✅ Por índice numérico❌ No tiene índices✅ Por clave
Tipo de elementosCualquier tipo (puede mezclar)Cualquier tipoSolo elementos hashables (inmutables)Claves inmutables, valores de cualquier tipo
Anidamiento✅ Sí✅ Sí✅ Sí, pero poco frecuente✅ Sí
Métodos principalesappend(), insert(), remove(), sort(), extend(), pop()count(), index()add(), remove(), discard(), union(), intersection(), difference()keys(), values(), items(), get(), update(), pop()
IteraciónPor elementos o índices.Por elementos.Por elementos (orden aleatorio).Por claves, valores o pares.
Comprensiones[x for x in lista]❌ No aplica{x for x in iterable}{k:v for ...}
Usos comunesListas de datos cambiantes, colecciones dinámicas.Datos fijos o constantes, coordenadas, pares inmutables.Agrupaciones sin repetidos, operaciones matemáticas, filtrado de valores.Estructuras asociativas, bases de datos pequeñas, configuración, mapeos.
Ejemplo prácticonotas = [7, 8, 9]punto = (3, 4)colores = {"rojo", "verde"}usuario = {"nombre":"Ana", "edad":20}